<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style>
    
  </style>
</head>
<body>
  
</body>
<script>

  // 封装函数，根据指定数据，查询数组中是否存在该数据，如果存在，返回出现次数，如果不存在，返回false

  function indexOf(arr, data){
    var n = 0;
    // 初始准备开始查询前的位置
    var i = -1;
    // 利用不确定次数的循环
    while( true ){
      // 利用indexOf查询数组中是否存在指定数据，每次从上次查询到的位置的后一个开始查询
      i = arr.indexOf( data, i+1 );
      // 查询到数据
      if( i !== -1 ){
        // 记录
        n++;
      }else{
        // 结束循环
        break;
      }
    }
    // 如果从未记录，说明未发现重复
    if(n === 0){
      // 返回false
      return false
    }
    // 否则，返回记录结果
    return n;
  }

  var arr = [3,5,7,6,4,5,7,5,4,3,2,3,4,5,6,7,8];
  console.log(indexOf(arr, 1));
  console.log(indexOf(arr, 5));
  console.log(indexOf(arr, 6));
  console.log(indexOf(arr, 3));
  console.log(indexOf(arr, 2));
  console.log(indexOf(arr, 8));
  console.log(indexOf(arr, 7));
  console.log(indexOf(arr, 9));

  // function indexOf(arr, data){
  //   var n = 0;
  //   // 遍历数组所有数据
  //   for(var i=0;i<arr.length;i++){
  //     // 逐个比较
  //     if(arr[i] === data){
  //       // 发现重复，记录
  //       n++;
  //     }
  //   }
  //   // 如果从未记录，说明未发现重复
  //   if(n === 0){
  //     // 返回false
  //     return false;
  //   }
  //   // 否则，返回记录结果
  //   return n;
  // }

</script>
</html>